package modules.dimensioning;

import javax.naming.directory.InvalidAttributesException;

import com.vividsolutions.jts.geom.Geometry;

import datatypes.Antenna;

/**
 *
 * @author Bart Moens
 * @author Lynne Vandousselaere
 */
public interface CoverageInterface {
    
	/**
	 * Calculates the coverage area of a given antenna
	 * Coverage is the area where CPE's can communicate with the antenna 
	 * @param antenna Antenna
	 * @return Geometry object showing where communication is possible
	 * @throws InvalidAttributesException if the antenna lacks some paramters for the calculation
	 */
    Geometry getCoverage(Antenna antenna) throws InvalidAttributesException;

    /**
     * Calculates the radius where this antennas electric field is measurable.
     * 
     * @param a Antenna
     * @return Measure: Range in meters
     * @throws InvalidAttributesException if the antenna lacks some paramters for the calculation
     */
    double getRangeRadius(Antenna a) throws InvalidAttributesException;

 }